home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 6
/
Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso
/
037a
/
rmdoor10.zip
/
RMDOOR.DOC
< prev
next >
Wrap
Text File
|
1991-11-09
|
18KB
|
1,057 lines
RMDoor
Version 1.0
Copyright (c) 1991 By Mark Goodwin and Randy Hunt
RMDoor i
COPYRIGHT NOTICE
----------------
RMDoor is a copyrighted program being distributed under the
shareware concept. As such you may use RMDoor for a period of 30
days without registering the software. After the 30 day
evaluation period, you must register your copy of RMDoor or you
will be in violation of United States and International copyright
laws.
As a shareware program, RMDoor may be freely distributed through
a BBS. Shareware distributors may distribute copies of RMDoor on
disk for a modest disk duplication charge not to exceed $6 per
disk.
RMDoor ii
WARRANTY
--------
RMDoor is distributed without warranty. In no event will Mark
Goodwin or Randy Hunt be liable to your for damages, including
any loss of profits, lost savings, or other incidental or
consequential damages arising out of your use of or inability to
use the program, even if Mark Goodwin, Randy Hunt, or an
authorized representative has been advised of the possibility of
such damages. Mark Goodwin and Randy Hunt will not be liable for
any such claim by any other party.
RMDoor iii
TABLE OF CONTENTS
-----------------
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . 1
USING RMDOOR . . . . . . . . . . . . . . . . . . . . . . . . 2
RUNNING AN RMDOOR DOOR . . . . . . . . . . . . . . . . . . . 3
SPECIAL KEYS . . . . . . . . . . . . . . . . . . . . . . . . 4
THE RMDOOR VARIABLES . . . . . . . . . . . . . . . . . . . . 5
ansicolor . . . . . . . . . . . . . . . . . . . . . . . 5
baudrate . . . . . . . . . . . . . . . . . . . . . . . . 5
bbsname . . . . . . . . . . . . . . . . . . . . . . . . 5
callingfrom . . . . . . . . . . . . . . . . . . . . . . 5
doorname . . . . . . . . . . . . . . . . . . . . . . . . 5
lockedrate . . . . . . . . . . . . . . . . . . . . . . . 5
minutesleft . . . . . . . . . . . . . . . . . . . . . . 5
phonenumber . . . . . . . . . . . . . . . . . . . . . . 6
seclevel . . . . . . . . . . . . . . . . . . . . . . . . 6
sysopname . . . . . . . . . . . . . . . . . . . . . . . 6
userfirstname . . . . . . . . . . . . . . . . . . . . . 6
username . . . . . . . . . . . . . . . . . . . . . . . . 6
THE RMDOOR PROCEDURES AND FUNCTION . . . . . . . . . . . . . 7
rmclrscr . . . . . . . . . . . . . . . . . . . . . . . . 7
rmdisplayfile . . . . . . . . . . . . . . . . . . . . . 7
rmgetbackground . . . . . . . . . . . . . . . . . . . . 7
rmgetforeground . . . . . . . . . . . . . . . . . . . . 7
rmgotoxy . . . . . . . . . . . . . . . . . . . . . . . . 7
rmreadi . . . . . . . . . . . . . . . . . . . . . . . . 7
rmreadkey . . . . . . . . . . . . . . . . . . . . . . . 7
rmreadl . . . . . . . . . . . . . . . . . . . . . . . . 8
rmreads . . . . . . . . . . . . . . . . . . . . . . . . 8
rmsetcolor . . . . . . . . . . . . . . . . . . . . . . . 8
rmtimeleft . . . . . . . . . . . . . . . . . . . . . . . 9
rmtimeon . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwrite . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwritei . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwritel . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwriteln . . . . . . . . . . . . . . . . . . . . . . . 9
rmwritelni . . . . . . . . . . . . . . . . . . . . . . . 9
rmwritelnl . . . . . . . . . . . . . . . . . . . . . . . 9
SUPPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
REGISTRATION . . . . . . . . . . . . . . . . . . . . . . . . 12
RMDoor 1
INTRODUCTION
------------
RMDoor is a comprehensive set of Turbo Pascal routines designed
to enable programmers to easily write doors for BBSes. The
following are some of RMDoor's many features:
Assembly language serial input/output routines for
maximum speed.
Fully supports high speed modems: 16550 FIFO buffering
and locked serial ports.
Built in ANSI terminal emulator. No need to have
ANSI.SYS loaded in memory.
Supports all of the most popular door data file
formats: PCBoard, GAP (DOOR.SYS), Spitfire, WildCat!,
and RBBS. Thus, a door built around RMDoor is
compatible with a wide range of BBS software.
RMDoor 2
USING RMDOOR
------------
Because RMDoor comes supplied is a Turbo Pascal unit it can be
seamlessly integrated with your door program by simply including
the following two lines in your door program:
{$M $4000,0,0}
uses rmdoor;
The first line is a {$M} compiler directive and is necessary to
enable RMDoor's Drop to DOS function. If you omit this line from
your door program, RMDoor will not be able to drop to DOS and
will display an appropriate error message to the sysop. NOTE:
The {$M} compiler directive also effects your program's heap
space. Be sure that the final two values are set accordingly if
you dynamically allocate memory.
The second line is a "uses" statement and simply instructs Turbo
Pascal to include the RMDOOR.TPU unit in your compiled door
program.
RMDoor 3
RUNNING AN RMDOOR DOOR
----------------------
An RMDoor-based door program is run by entering a command similar
to the following:
door config
In the above command line, "door" is the name of your door's EXE
file and the "config" parameter is the name of the door's
configuration file. The configuration file can have any name the
sysop chooses, but it must reside in the same directory as the
door. The configuration file is an ASCII text file with the
following format:
Line 1: Door data file type.
Line 2: Path to the door data file(s).
Line 3: BBS name.
Line 4: Sysop's name.
Line 5: Locked baud rate.
As illustrated above, the door's data file type is specified in
line 1 and can be PCB for PCBoard, GAP for GAP (DOOR.SYS), SF for
Spitfire, RBBS for RBBS, or WC for WildCat!. The locked baud
rate is specified in line 5. If the sysop doesn't lock his
serial port, he must specify 0 for the locked baud rate. NOTE:
Although many door formats do pass the locked baud rate in the
door data files, some older formats such as RBBS do not. For
conformity, RMDoor requires that you specify the locked baud rate
in line 5 and ignores any value passed in the door data files.
The following is a sample door configuration file:
PCB
C:\tritel\
The Lobster Buoy
Mark Goodwin
38400
RMDoor can be run locally without a door data file (handy for the
sysop to use the door without logging on to the BBS) by
specifying LOCAL after the configuration file parameter in the
DOS command line. RMDoor will request the user to enter his name
before running the door.
RMDoor 4
SPECIAL KEYS
------------
While a door is running, the sysop can press certain special keys
to perform a variety of functions. The following is a list of
the functions that the RMDoor special keys perform:
Key(s) Function
HOME Toggles between the user status window and a
help display that lists the RMDoor special
keys.
F6 Takes 5 minutes away from the caller.
F7 Gives 5 minutes to the caller.
F9 Quit the door and return the caller to the
BBS.
F10 Enter chat mode. Pressing the ESC key exits
the chat mode.
Alt+D Drop to DOS.
RMDoor 5
THE RMDOOR VARIABLES
--------------------
The following are the global variables that RMDoor supplies for
the door author's convenience:
ansicolor : boolean;
The ansicolor variable is set to True for a caller using ANSI
color graphics or to False for a monochrome caller.
baudrate : longint;
The baudrate variable holds the caller's baud rate. This is the
callers actual connection rate and not the locked baud rate.
NOTE: RMDoor will set baudrate to 0 for local calls.
bbsname : string;
The bbsname variable holds the BBS's name.
callingfrom : string;
The callingfrom variable holds the user's city and state. This
may not be supported by all door formats and will be set to a
null string if not.
doorname : string;
The doorname variable holds the door's name. The door's name
will be displayed in the user status window. NOTE: It is the
door author's responsibility to assign a value to this variable.
lockedrate : longint;
The lockedrate variable holds the serial port's locked baud rate,
if any.
minutesleft : integer;
The minutesleft variable holds the number of minutes the caller
had remaining when he entered the door.
RMDoor 6
phonenumber : string;
The phonenumber variable holds the user's phone number. This may
not be supported by all door formats and will be set to a null
string if not.
seclevel : integer;
The seclevel variable holds the caller's security level.
sysopname : string;
The sysopname variable holds the sysop's name.
userfirstname : string;
The userfirstname variable holds the user's first name.
username : string;
The username variable holds the user's name.
RMDoor 7
THE RMDOOR PROCEDURES AND FUNCTION
----------------------------------
The following is a explanation of procedures and functions that
RMDoor provides:
procedure rmclrscr;
The rmclrscr procedure clears both the local and remote displays.
procedure rmdisplayfile(filename : string; pause : boolean);
The rmdisplayfile procedure displays a file to both the local and
the remote displays. The file to be displayed is specified by
"filename". The "pause" parameter specifies whether or not the
display is to be paused every 24 lines.
function rmgetbackground : integer;
The rmgetbackground function returns the current background
color.
function rmgetforeground : integer;
The rmgetforeground function returns the current foreground
color.
procedure rmgotoxy(x, y : integer);
The rmgotoxy procedure positions the cursor for both the local
and remote displays. The cursor's new column position is
specified by the "x" parameter and its new row position is
specified by the "y" parameter.
function rmreadi : integer;
The rmreadi function returns the value of an integer that is
entered either locally or remotely.
function rmreadkey : char;
The rmreadkey function waits for either a key to be pressed or a
character to come in through the serial port. As soon as a
character is available, its value will be returned by rmreadkey.
RMDoor 8
function rmreadl : longint;
The rmreadl function returns the value of a longint that is
entered either locally or remotely.
function rmreads : string;
The rmreads function returns the value of a string that is
entered either locally or remotely.
procedure rmsetcolor(f, b : integer);
The rmsetcolor procedure sets the foreground color (the "f"
parameter) and the background color (the "b" parameter) for both
the local and remote displays. NOTE: The colors will only be set
if the caller has ANSI color graphics enabled. The foreground
colors are as follows:
0 - Black
1 - Blue
2 - Green
3 - Cyan
4 - Red
5 - Magenta
6 - Brown
7 - White
8 - Dark grey
9 - Light blue
10 - Light green
11 - Light cyan
12 - Light red
13 - Light magenta
14 - Yellow
15 - Bright white
The background colors are as follows:
0 - Black
1 - Blue
2 - Green
3 - Cyan
4 - Red
5 - Magenta
6 - Brown
7 - White
8 - Black with blinking foreground
9 - Blue with blinking foreground
10 - Green with blinking foreground
11 - Cyan with blinking foreground
12 - Red with blinking foreground
RMDoor 9
13 - Magenta with blinking foreground
14 - Yellow with blinking foreground
15 - White with blinking foreground
function rmtimeleft : integer;
The rmtimeleft function returns the number of minutes the caller
has remaining.
function rmtimeon : integer;
The rmtimeon function returns the number of minutes that the
caller has been in the door.
procedure rmwrite(s:string);
The rmwrite procedure displays a string both locally and
remotely.
procedure rmwritei(i : integer);
The rmwritei procedure displays an integer both locally and
remotely.
procedure rmwritel(l : longint);
The rmwritel procedure displays a longint both locally and
remotely.
procedure rmwriteln(s:string);
The rmwriteln procedure displays a string both locally and
remotely. After displaying the string, RMDoor will send a CR/LF
pair to the local and remote displays.
procedure rmwritelni(i : integer);
The rmwritelni procedure displays an integer both locally and
remotely. After displaying the integer, RMDoor will send a CR/LF
pair to the local and remote displays.
procedure rmwritelnl(l : longint);
The rmwritelnl procedure displays a longint both locally and
RMDoor 10
remotely. After displaying the longint, RMDoor will send a CR/LF
pair to the local and remote displays.
RMDoor 11
SUPPORT
-------
You may obtain assistance with a RMDoor related problem by
calling either James Bond's Hideaway at 207-942-6575 or The
Lobster Buoy at 207-941-0805.
RMDoor 12
REGISTRATION
------------
Registration of RMDoor is only $25.00. Please use the form in
the file REGISTER.TXT. When you register RMDoor, you will
receive a registered version of the RMDOOR.TPU file on disk.